package com.hiwan.system.web.forward;

import java.util.Date;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import com.hiwan.platform.utils.DateUtils;
import com.hiwan.platform.utils.StringUtils;
import com.hiwan.system.pojo.LoginfoStatistics;
import com.hiwan.system.service.login.LoginService;

/**
 * 系统使用统计
 * 对用户登陆机构，使用机构的统计的查询
 * @author wangwei
 *
 */

@Controller
@RequestMapping("/logInfo")
public class LogInfoController {
	
	protected Logger logger = LoggerFactory.getLogger(getClass());
	@Autowired
	LoginService  logInfoService;
	/**
	 * 跳转到查询页面
	 * @return
	 */
	@RequestMapping("/goto.do")
	public String  go(ModelMap model) {
		return "login/queryLogin";
	}
	
	/**
	 * 根据登陆时间和所属机构查询系统的使用情况
	 * @param startTime  登陆时间（起始时间）
	 * @param endTime    登陆时间（结束时间）
	 * @param orgId    所属机构Id
	 * @param model   
	 */
	@RequestMapping("/query")
	public String query(String startTime ,String endTime,String orgId, ModelMap model ){
		
		Date date = null;
		if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
			date = DateUtils.addDays(DateUtils.parseDate(endTime), 1);
		}
		
		List<LoginfoStatistics> loginfoStatistiscs = logInfoService.countLoginfoByOrg(startTime, date == null ? "" : DateUtils.formatDate(date), orgId);
		
		model.put("loginfoStatistiscs", loginfoStatistiscs);
		
		return "login/loginInfoList";
		
	}
	
	/**
	 * 查询特定机构登陆的用户及登陆次数
	 * @param startTime
	 * @param endTime
	 * @param orgId
	 * @return
	 */
	@RequestMapping("/detail")
	public String  queryLoginedUsers(String startTime,String endTime,String orgId ,ModelMap model){

		Date date = null;
		if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
			date = DateUtils.addDays(DateUtils.parseDate(endTime), 1);
		}
		
		
		 List<LoginfoStatistics> logInfos = logInfoService.countLoginfoByUser(startTime, date == null ? "" : DateUtils.formatDate(date),orgId);
		 
		 model.put("logInfos", logInfos);
		 
		 return "login/loginInfoListDetail";
	}
	
}


